package cn.hospital.dao;

import cn.hospital.entity.Chart;
import cn.hospital.entity.FoGroup;
import cn.hospital.entity.MeaningUser;
import cn.hospital.entity.PatientInformationSheet;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 病人表
 */
@Mapper
public interface PatientInformationSheetMapper {
    /**
     * 根据条件查询病人记录
     * @param map
     * @return
     */
    List<PatientInformationSheet> selectByMap(Map<String, Object> map);

    /**
     * 根据条件查询病人数量
     * @param map
     * @return
     */
    Long selectByMapCount(Map<String, Object> map);

    /**
     * 查询病人id
     * @param patientInformationSheet
     * @return
     */
    PatientInformationSheet selectPatientId(PatientInformationSheet patientInformationSheet);

    /**
     * 查询未加入随访组的病人
     * @param foGroup
     * @return
     */
    List<PatientInformationSheet> selectPatientInformationSheet(FoGroup foGroup);

    /**
     * 病人加入随访组
     * @param patientInformationSheet
     * @return
     */
    Integer updatefoGroupState(PatientInformationSheet patientInformationSheet);

    /**
     * 查询随访管理系统，查询单个患者信息
     * @param patientId
     * @return
     */
    List<PatientInformationSheet> selectPatientSignsAnemiaFoDiagnosis(Integer patientId);

    /**
     * 添加患者信息
     *
     * @param patientInformationSheet
     * @return
     */
    Integer insert(PatientInformationSheet patientInformationSheet);

    /**
     * 根据条件查询，该病人是否存在
     *
     * @param map（姓名，身份证号）
     * @return
     */
    PatientInformationSheet selectByConditions(Map<String, Object> map);

    /**
     * 修改病人信息
     *
     * @param patientInformationSheet
     * @return
     */
    Integer updatePatientInformationSheet(PatientInformationSheet patientInformationSheet);

    /**
     * 根据时间查询（一年中能够每一个月患者数量比对）
     * @param timeMonth
     * @return
     */
    List<Chart> selectByTime(@Param("timeMonth") String timeMonth);
}